package com.lp.test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class ReadFromFile {

    private static Logger logger = LoggerFactory.getLogger(ReadFromFile.class);

    static int line = 1;

    public static void main(String[] args) {

        final int FILE_SIZE_A = 40;

        final int FILE_SIZE_B = 13;

        String[] pro_type_name = new String[53];
        pro_type_name[0] = "基础设施项目、交通基础设施项目、国际航空枢纽基础设施项目";
        pro_type_name[1] = "基础设施项目、交通基础设施项目、国际航运枢纽基础设施项目";
        pro_type_name[2] = "基础设施项目、交通基础设施项目、国家铁路项目";
        pro_type_name[3] = "基础设施项目、交通基础设施项目、城际轨道交通项目";
        pro_type_name[4] = "基础设施项目、交通基础设施项目、城市轨道交通项目";
        pro_type_name[5] = "基础设施项目、交通基础设施项目、轨道交通场站综合体项目";
        pro_type_name[6] = "基础设施项目、交通基础设施项目、高快速路项目";
        pro_type_name[7] = "基础设施项目、交通基础设施项目、市政路桥项目、第二CBD周边道路";
        pro_type_name[8] = "基础设施项目、交通基础设施项目、市政路桥项目、空港经济区周边道路";
        pro_type_name[9] = "基础设施项目、交通基础设施项目、市政路桥项目、广州南站周边道路";
        pro_type_name[10] = "基础设施项目、交通基础设施项目、市政路桥项目、大田集装箱中心站周边道路";
        pro_type_name[11] = "基础设施项目、交通基础设施项目、市政路桥项目、白鹅潭功能区周边道路";
        pro_type_name[12] = "基础设施项目、交通基础设施项目、市政路桥项目、中新知识城配套道路";
        pro_type_name[13] = "基础设施项目、交通基础设施项目、市政路桥项目、南沙新区（自贸区）配套道路";
        pro_type_name[14] = "基础设施项目、交通基础设施项目、市政路桥项目、思科（广州）智慧城周边项目";
        pro_type_name[15] = "基础设施项目、交通基础设施项目、市政路桥项目、其他市政道路项目";
        pro_type_name[16] = "基础设施项目、交通基础设施项目、市政路桥项目、地下空间及配套设施";
        pro_type_name[17] = "基础设施项目、交通基础设施项目、综合管廊项目";
        pro_type_name[18] = "基础设施项目、科技创新枢纽基础设施项目";
        pro_type_name[19] = "基础设施项目、能源基础设施项目、电网项目";
        pro_type_name[20] = "基础设施项目、能源基础设施项目、天燃气热电联产和分布式能源项目";
        pro_type_name[21] = "基础设施项目、能源基础设施项目、天然气利用和保障项目";
        pro_type_name[22] = "基础设施项目、能源基础设施项目、其他项目";
        pro_type_name[23] = "产业建设项目、“IAB”战略项目、新一代信息技术";
        pro_type_name[24] = "产业建设项目、“IAB”战略项目、人工智能";
        pro_type_name[25] = "产业建设项目、“IAB”战略项目、生物医药与健康医疗";
        pro_type_name[26] = "产业建设项目、先进制造业项目、汽车及零部件制造、整车及发动机制造项目";
        pro_type_name[27] = "产业建设项目、先进制造业项目、汽车及零部件制造、汽车零配件项目";
        pro_type_name[28] = "产业建设项目、先进制造业项目、轨道交通装备";
        pro_type_name[29] = "产业建设项目、先进制造业项目、能源及环保装备";
        pro_type_name[30] = "产业建设项目、先进制造业项目、高端船舶与海洋工程装备";
        pro_type_name[31] = "产业建设项目、先进制造业项目、都市消费工业";
        pro_type_name[32] = "产业建设项目、现代服务业项目、金融";
        pro_type_name[33] = "产业建设项目、现代服务业项目、物流";
        pro_type_name[34] = "产业建设项目、现代服务业项目、商贸会展";
        pro_type_name[35] = "产业建设项目、现代服务业项目、总部经济";
        pro_type_name[36] = "产业建设项目、现代服务业项目、文化创意";
        pro_type_name[37] = "产业建设项目、现代服务业项目、休闲旅游";
        pro_type_name[38] = "产业建设项目、都市农业项目";
        pro_type_name[39] = "生态环保基础设施项目、垃圾处理设施建设项目";
        pro_type_name[40] = "生态环保基础设施项目、水环境综合整治项目";
        pro_type_name[41] = "生态环保基础设施项目、水利项目";
        pro_type_name[42] = "生态环保基础设施项目、水源水厂建设项目";
        pro_type_name[43] = "生态环保基础设施项目、园林绿化项目";
        pro_type_name[44] = "社会民生项目、国民教育项目";
        pro_type_name[45] = "社会民生项目、医疗健康项目";
        pro_type_name[46] = "社会民生项目、文化建设项目";
        pro_type_name[47] = "社会民生项目、民政社保项目";
        pro_type_name[48] = "社会民生项目、住房保障项目";
        pro_type_name[49] = "城市更新与土地储备项目、城中村改造项目";
        pro_type_name[50] = "城市更新与土地储备项目、旧厂升级改造项目";
        pro_type_name[51] = "城市更新与土地储备项目、客运站、公交站场更新项目";
        pro_type_name[52] = "城市更新与土地储备项目、土地储备项目";

        String fileName[] = new String[FILE_SIZE_A + FILE_SIZE_B];


        for (int i = 0; i < FILE_SIZE_A; i++){
            fileName[i] = "H:/guangdong/1-232/" + (i + 1) + ".txt";
        }

        for (int i = FILE_SIZE_A; i < FILE_SIZE_A + FILE_SIZE_B; i++){
            fileName[i] = "H:/guangdong/232-325/" + (i + 1) + ".txt";
        }


        for (int i = 0; i < FILE_SIZE_A + FILE_SIZE_B; i++){
//            logger.error(fileName[i]);
            readFileByLines(fileName[i], pro_type_name[i]);
        }
//        readFileByLines("H:/guangdong/7.txt");
    }


    /**

     * 以行为单位读取文件，常用于读面向行的格式化文件

     */

    public static void readFileByLines(String fileName, String proTypeName) {

        File file = new File(fileName);

        BufferedReader reader = null;

        String tempString = null;
        try {

//            System.out.println("以行为单位读取文件内容，一次读一整行：");

            reader = new BufferedReader(new FileReader(file));


            String insert_sql_start = "INSERT INTO project_info (`id`, `pro_name`, `pro_type`, `pro_type_name`, `owner_unit`, `com_dept`, `con_scale`, `con_stage`, `con_begin_time`, `con_end_time`, `total_invest`, `accum_invest`, `statis_year`, `work_content`, `plant_invest`, `plant_year`, `create_time`, `update_time`) VALUES (";

            String insert_sql_end = "'2018', '1526459928459', '1526459928459');";
            // 一次读入一行，直到读入null为文件结束

            while ((tempString = reader.readLine()) != null) {

                String[] tem = tempString.split("\t");
                StringBuilder sb = new StringBuilder();

                //建设阶段 1-前期，2-新开工，3-续建，4-竣工，5-其他
                String temp1 = "";
                switch (tem[5]){
                    case "前期" : temp1 = "1";
                    case "新开工" : temp1 = "2";
                    case "续建" : temp1 = "3";
                    case "竣工" : temp1 = "4";
                    default: temp1 = "5";
                }

                String year[] =  tem[6].split("-");

                sb.append(insert_sql_start)
                    .append("'" + line + "', ")
                    .append("'" + tem[1] + "', ")
                    .append("'0', ")
                    .append("'" + proTypeName + "', ")
                    .append("'" + tem[2] + "', ")
                    .append("'" + tem[3] + "', ")
                    .append("'" + tem[4] + "', ")
                    .append("'" + temp1 + "', ")
                    .append("'" + year[0] + "', ")
                    .append("'" + year[1] + "', ")
                    .append("'" + tem[7] + "', ")
                    .append("'" + tem[8] + "', ")
                    .append("'" + (Integer.parseInt("2018") - Integer.parseInt(year[0])) + "', ")
                    .append("'" + tem[9] + "', ")
                    .append("'" + tem[10] + "', ")
                    .append(insert_sql_end);

                // 显示行号
                System.out.println(sb.toString());

                line++;

            }

            reader.close();

        } catch (Exception e) {
            logger.error(tempString + "");
            e.printStackTrace();

        } finally {

            if (reader != null) {

                try {

                    reader.close();

                } catch (IOException e1) {

                }

            }

        }

    }
}
